home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d18 / nrpas13.arc / RTSAFE.DEM < prev    next >
Text File  |  1991-05-01  |  828b  |  47 lines

  1. PROGRAM d9r9(input,output);
  2. (* driver for routine RTSAFE *)
  3. CONST
  4.    n=100;
  5.    nbmax=20;
  6.    x1=1.0;
  7.    x2=50.0;
  8. TYPE
  9.    glnbmax = ARRAY [1..nbmax] OF real;
  10. VAR
  11.    i,nb : integer;
  12.    root,xacc : real;
  13.    xb1,xb2 : glnbmax;
  14.  
  15. (*$I MODFILE.PAS *)
  16. (*$I BESSJ0.PAS *)
  17.  
  18. (*$I BESSJ1.PAS *)
  19.  
  20. FUNCTION fx(x: real): real;
  21. BEGIN
  22.    fx := bessj0(x)
  23. END;
  24.  
  25. PROCEDURE funcd(x: real; VAR fn,df: real);
  26. BEGIN
  27.    fn := fx(x);
  28.    df := -bessj1(x)
  29. END;
  30.  
  31. (*$I ZBRAK.PAS *)
  32.  
  33. (*$I RTSAFE.PAS *)
  34.  
  35. BEGIN
  36.    nb := nbmax;
  37.    zbrak(x1,x2,n,xb1,xb2,nb);
  38.    writeln;
  39.    writeln('roots of bessj0:');
  40.    writeln('x':19,'f(x)':16);
  41.    FOR i := 1 to nb DO BEGIN
  42.       xacc := (1.0e-6)*(xb1[i]+xb2[i])/2.0;
  43.       root := rtsafe(xb1[i],xb2[i],xacc);
  44.       writeln(' root ',i:2,'  ',root:12:6,fx(root):14:6)
  45.    END
  46. END.
  47.